package com.ruoyi.user.domain;

import java.math.BigDecimal;
import java.util.Date;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 【用户】对象 user
 * 
 * @author ruoyi
 * @date 2025-07-03
 */
@Data
@ApiModel(description = "用户实体")
public class User extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "id", example = "id")
    private Long id;

    @ApiModelProperty(value = "用户id", example = "用户id")
    @Excel(name = "用户id")
    private String userId;

    @ApiModelProperty(value = "用户名", example = "用户名")
    @Excel(name = "用户名")
    private String username;

    @ApiModelProperty(value = "手机号", example = "手机号")
    @Excel(name = "手机号")
    private String phone;

    @ApiModelProperty(value = "姓名", example = "姓名")
    @Excel(name = "姓名")
    private String name;

    @ApiModelProperty(value = "年龄", example = "年龄")
    @Excel(name = "年龄")
    private Long age;

    @ApiModelProperty(value = "性别", example = "性别")
    @Excel(name = "性别")
    private String gender;

    @ApiModelProperty(value = "身份证", example = "身份证")
    @Excel(name = "身份证")
    private String idCard;

    @ApiModelProperty(value = "邀请码", example = "邀请码")
    @Excel(name = "邀请码")
    private String invitationCode;

    @ApiModelProperty(value = "密码", example = "密码")
    @Excel(name = "密码")
    private String password;

    @ApiModelProperty(value = "头像", example = "头像")
    @Excel(name = "头像")
    private String imageAddress;

    @ApiModelProperty(value = "是否是专家, 0-是, 1-不是", example = "是否是专家, 0-是, 1-不是")
    @Excel(name = "是否是专家, 0-是, 1-不是")
    private Long isExpert;

    @ApiModelProperty(value = "所在地址", example = "所在地址")
    @Excel(name = "所在地址")
    private String address;

    @ApiModelProperty(value = "是否公立, 0-是, 1-不是, 2-不限", example = "是否公立, 0-是, 1-不是, 2-不限")
    @Excel(name = "是否公立, 0-是, 1-不是, 2-不限")
    private Long isPublic;

    @ApiModelProperty(value = "昵称", example = "昵称")
    @Excel(name = "昵称")
    private String nickname;

    @ApiModelProperty(value = "邀请人id", example = "邀请人id")
    @Excel(name = "邀请人id")
    private String inviterId;

    @ApiModelProperty(value = "简历", example = "简历")
    @Excel(name = "简历")
    private String workExperience;

    @ApiModelProperty(value = "是否可用, 0-正常, 1-禁用", example = "是否可用, 0-正常, 1-禁用")
    @Excel(name = "是否可用, 0-正常, 1-禁用")
    private String userStatus;

    @ApiModelProperty(value = "是否审核通过0-通过, 1-驳回", example = "是否审核通过0-通过, 1-驳回")
    @Excel(name = "是否审核通过0-通过, 1-驳回")
    private String processStatus;

    @ApiModelProperty(value = "叮豆总数", example = "叮豆总数")
    @Excel(name = "叮豆总数")
    private BigDecimal ddTotalNumber;

    @ApiModelProperty(value = "累计叮豆", example = "1000")
    private BigDecimal cumulativeDd;

    @ApiModelProperty(value = "累计金额", example = "1000")
    private BigDecimal cumulativeAmount;

    @ApiModelProperty(value = "专家总收益", example = "专家总收益")
    @Excel(name = "专家总收益")
    private BigDecimal totalAmount;

    @ApiModelProperty(value = "冻结金额", example = "冻结金额")
    @Excel(name = "冻结金额")
    private BigDecimal freezeAmount;

    @ApiModelProperty(value = "可提现金额", example = "可提现金额")
    @Excel(name = "可提现金额")
    private BigDecimal withdrawableAmount;

    @ApiModelProperty(value = "ip", example = "ip")
    private String ip;

    @ApiModelProperty(value = "登录时间", example = "登录时间")
    private Date loginDate;

    @ApiModelProperty(value = "用户唯一标识", example = "用户唯一标识")
    private String openId;

    @ApiModelProperty(value = "token", example = "token")
    private String token;

    @ApiModelProperty(value = "服务端唯一标识", example = "服务端唯一标识")
    private String serviceOpenId;

    @ApiModelProperty(value = "资质提交次数", example = "资质提交次数")
    private Integer qualificationsInt;

}
